import time as _time
import torch as _torch
from src.networks import ExpNetwork as _use_net

_name = 'exp1_bs16'
_time = _time.strftime('%m-%d %H:%M:%S', _time.localtime())


USE_NET = _use_net

# Dataset
DATASET_PROC_METHOD_TRAIN = 'Rescale224'
DATASET_PROC_METHOD_VAL = 'Rescale224'
#

# Embedding Pretrianed
USE_PRETRAINED_WORD_EMBEDDING = True

# Outfit Preprocess
OUTFIT_ITEM_PAD_NUM = 8
OUTFIT_NAME_PAD_NUM = 10
#

# Word
WORD_EMBED_SIZE = 300  # 这个是和之前word2vec保持一致的
MAX_VOCAB_SIZE = 300
###

# Image
IMAGE_EMBED_SIZE = 300

# EMBED
EMBED_MARGIN = 0.2

# WEIGHT
WEIGHT_NORM_TEXT = 0.00
WEIGHT_NORM_IMAGE = 0.00
WEIGHT_IMAGE_TEXT = 0.
WEIGHT_OUTFIT_CENTER = 1.
WEIGHT_INTER_PRODUCT = 1.

# TRAIN
NUM_EPOCH = 50
LEARNING_RATE = 0.0001
LEARNING_RATE_DECAY = 0.9
BATCH_SIZE = 16
SAVE_EVERY_STEPS = 10000

# VAL
VAL_WHILE_TRAIN = True
VAL_FASHION_COMP_FILE = "fashion_compatibility_small.txt"
VAL_FITB_FILE = "fill_in_blank_test.json"
VAL_BATCH_SIZE = 8
VAL_EVERY_STEPS = 100000
VAL_EVERY_EPOCHS = 2
VAL_START_EPOCH = 0

# auto
device = _torch.device('cuda:0' if _torch.cuda.is_available() else 'cpu')
TRAIN_DIR = 'runs/%s/' % _name + _time
VAL_DIR = 'runs/%s/' % _name + _time
MODEL_NAME = '%s' % _name

